#ifndef TORTUGA_H_
#define TORTUGA_H_
#define  M_PI 3.14159265358979323846
#include "bmp.h"
#include "listaEnlazada.h"
#include <math.h>

typedef struct operacion tOperacion;

typedef struct {
	tPunto posicion;
	int angulo;
	unsigned char pluma;  // 1 indica con pluma, 0 indica sin pluma
	tColor color;
	tColor colores[5];
	tOperacion *operaciones[6];
	tBitmap *bm;
} tTortuga;

struct operacion {
	char nombre;
	void (* funcion)(tTortuga *tortuga, int valor);
};

void inicializarTortuga(tTortuga *tortuga);
void calcular_xy(int x0, int y0, int angle, int d, int *x1, int *y1);
void inicializarOperaciones(tOperacion *operaciones[]);
void borrarOperaciones(tOperacion *operaciones[]);
void adelante(tTortuga *tortuga, int pasos);
void derecha(tTortuga *tortuga, int angulo);
void izquierda(tTortuga *tortuga, int angulo);
void color(tTortuga *tortuga, int numero);
//  paso un cero como valor para tratarla como al resto de las operaciones.
void conPluma(tTortuga *tortuga, int valor);  
//  paso un cero como valor para tratarla como al resto de las operaciones.
void sinPluma(tTortuga *tortuga, int valor);
void ejecutarInstruccion(tTortuga *tortuga, tInstruccion *instruccion);
void liberarMatrizTortuga(tBitmap *bm);
#endif /* TORTUGA_H_ */



